スクリプト-UI作成

createUI

// createUI関数を定義します。引数はthisObjです。
function createUI(thisObj) {
	// thisObjがPanelインスタンスならそのままmyPanelに代入し、そうでなければ新たにWindowを作成します。
	var myPanel = (thisObj instanceof Panel) ? thisObj : new Window("palette", "My Script", undefined, {resizeable:true});

	// ベースとなるUIのレイアウトを定義します。
	var res = "group{orientation:'column', alignChildren:['fill', 'top'],
			inputField: EditText{text:'Enter Text', characters:30},
			dropdown: DropDownList{properties:{items:['upSide', 'middle', 'downSide']}},
			loadButton: Button{text:'Load JSON'},
			createButton: Button{text:'Create Text Layer'},
			}";

	// 定義したリソース文字列をパネルに追加します。
	myPanel.grp = myPanel.add(res);

	// パネルのレイアウトを設定し直します。
	myPanel.layout.layout(true);

	// パネルの最小サイズを現在のサイズに設定します。
	myPanel.grp.minimumSize = myPanel.grp.size;

	// パネルのサイズを再設定します。
	myPanel.layout.resize();

	// loadButtonがクリックされたときの動作を定義します。ここではloadJson関数を呼び出します。
	myPanel.grp.loadButton.onClick = function() {
		var file = File.openDialog("Select a JSON file");
		if (file !== null) { // ユーザーがファイルを選択した場合
			myPanel.rectData = loadJson(file);
			// TODO: myPanel.rectDataを使った処理を書く
			var stringifiedData = JSON.stringify(myPanel.rectData, null, 2); // オブジェクトを文字列に変換
			alert(stringifiedData); // アラートで内容を表示
		}
	}

	// パネルがリサイズされたとき、レイアウトも一緒にリサイズするように設定します。
	myPanel.onResizing = myPanel.onResize = function () {this.layout.resize();}

	myPanel.grp.createButton.onClick = function() {
		var selectedName = myPanel.grp.dropdown.selection.text;
		var text = myPanel.grp.inputField.text;
		if (myPanel.rectData) { // JSONデータがロードされていることを確認
			createRectangle_fromJson(selectedName, myPanel.rectData);
			createTextLayer(text, selectedName,myPanel.rectData);
		} else {
			alert("Please load a JSON file first.");
		}
	}

	// パネルオブジェクトを返します。
	return myPanel;
}

更新記録

Creation Date: 2023-08-01
Creator: hoehoe
Source: GPT4